/**
 * 这里就简单的创建了一个 可写的流
 */
const { Writable } = require("stream");

/**
 * outStream是 Writable 这个可写流的实例 所以outStream是一个可写流
 */
const outStream = new Writable({
  /**
   *
   * @param chunk  chunk 通常是一个 buffer
   * @param encoding  encoding 在那种情况下时需要的，但是通常我们可以忽略它
   * @param callback  是一个当我们处理完数据块之后需要调用的一个函数。它标识着是否写入成功，为了标识失败，可以调用一个带有错误对象的 callback。
   */
  write(chunk, encoding, callback) {
    /**
     * 在控制台输入什么 就是立即打印出 出入的结果
     *  这个就是使用流的效果
     */
    console.log("chunk！", chunk.toString());
    callback();
  },
});

/**
 * 为了消费这个 可写流 我们就需要一个 可读流来消费它
 *    process.stdin 是一个node的一个最基础的一个可读流
 */
process.stdin.pipe(outStream);
/**
 * pipe 方法是消费流最简单的方法,通常建议使用 pipe 方法或者事件来消费流
 */
